program Project1; //Zadanie 6.3

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  rozmiar = 10;

type
macierz = array[1..rozmiar,1..rozmiar] of integer;

matrix=class
   procedure czytaj_dane(var tablica:macierz;rozmiar:integer);
   procedure przetworz_dane(var tablica:macierz;rozmiar:integer);
   procedure wyswietl_wynik(var tablica:macierz;rozmiar:integer);
end;

procedure matrix.czytaj_dane(var tablica:macierz;rozmiar:integer);
var
  i,j:integer;
begin
 randomize;
 for i := 1 to rozmiar do
   begin
     for j := 1 to rozmiar do
       begin
         if i=j then
           tablica[i,j]:=random(10)
         else
           tablica[i,j]:=0;
       end;
   end;
end;

procedure matrix.przetworz_dane(var tablica:macierz;rozmiar:integer);
var
  i,suma:integer;
begin
  suma:=0;
  for i:=1 to rozmiar do
    suma:=suma+tablica[i,i];
  writeln;
  writeln('Suma elementow na przekatnej = ', suma, '.');
end;

procedure matrix.wyswietl_wynik(var tablica:macierz;rozmiar:integer);
var
  i,j:integer;
begin
  writeln('Wyswietlenie zawartosci tablicy:');
  writeln;
  for i := 1 to rozmiar do
    begin
      for j := 1 to rozmiar do
        write(tablica[i,j],' ');
      writeln;
    end;
end;

var
  tablica:macierz;
  matrix1:matrix;

begin
  matrix1:=matrix.Create; //konstruktor
  matrix1.czytaj_dane(tablica,rozmiar);
  matrix1.przetworz_dane(tablica,rozmiar);
  matrix1.wyswietl_wynik(tablica,rozmiar);
  matrix1.Free; //destruktor

  readln;//czeka na nacisniecie klawisza ENTER
end.
